<?php

class Application_Model_Intervenciones extends Sgit_Model
{  
    protected $_name = 'intervenciones';
    protected $_primary = 'id';


    public function getIntervencionesAprobadas($fecha)
	{


			$select = $this->getAdapter()->select();            
			$select->from( array( 'intervenciones' ));
			$select->joinLeft( 'zonas', 'zonas.id = intervenciones.id_zona', array( 'usuario' => 'nombre' ) );
			$select->joinLeft( 'usuarios', 'usuarios.id = intervenciones.responsable', array( 'zona' => 'nombre' ) );
            $select->where( 'fecha = ?', $fecha->toString('yyyy-MM-dd'));
            $select->where( 'cambio_aceptado = ?', 'SI' );
            $select->order(array('fecha DESC') );
            return $this->getAdapter()->fetchAll( $select );
			
	} 
    
    
    
    function getComite($cambio_aceptado,$fecha_peticion_cambio,$propone=null)
    {
        $select=$this->getAdapter()->select();
        $select->from(array($this->_name),array('c'=>new Zend_Db_Expr('COUNT(id)')))->where("objeto_cambio = 1 ");
            
        if($cambio_aceptado){
             $select->where("cambio_aceptado = ?",$cambio_aceptado);
        }else{
             $select->where("cambio_aceptado IS NULL OR cambio_aceptado='VISTO'");
        }
        
        
        $fecha=new Zend_Date();
		$fecha->addDay(25);

        
    
        $select->where("fecha < ?",$fecha->toString('yyyy-MM-dd'));
        $select->where("fecha > ?",new Zend_Db_Expr('NOW()'));
        
        
        
        if(!is_null($propone))
        {
            $select->where("id_usuario = ?",$propone,INTEGER);
        }   
        
        Sgit_Util_dateRange::run($select,$fecha_peticion_cambio,'fecha_peticion_cambio');
            
        return $this->getAdapter()->fetchOne($select);

    }
    
    function changeComite($id, $valor, $notas)
    {
        
        $row=$this->getRow($id);
      
        if ($valor == 'SI'){
            $accion='aceptado';
        }else{
            $accion='rechazado';
        }
        
        
        switch($valor){
            case 'SI':
                $entrada['asunto']='Comite de Cambio: Aceptada intervención';
                $entrada['body']='El Comite de Cambio ha aceptado la intervención:';
                break;
            case 'VISTO':
                $entrada['asunto']='Comite de Cambio: Vista intervención';
                $entrada['body']='El Comite de Cambio ha visto y postpuesto la decisión sobre la intervención:';
                break;
            default:
                $entrada['asunto']='Comite de Cambio: Rechazada intervención';
                $entrada['body']='El Comite de Cambio ha aceptado la intervención:';
        }
        
        $update['notas_cambio']=$notas;
        $update['cambio_aceptado']=$valor;
        $update['responde_cambio']=$this->_auth->getIdentity()->id;
        
        $result= $this->updateRow($update,$id);
  
  

        
        if($result['status']=='ok')
        {
           
            $fecha=new Zend_Date($row['fecha'],Zend_Date::ISO_8601);
           
            $entrada['de'] = $this->_auth->getIdentity()->id;
            $entrada['asunto'] .= $row['nombre'];
            $entrada['body'] .= "<br><br><br>".$row['nombre']."<br>".$fecha->toString('EEEE, dd MMMM yyyy').' a las '.$row['hora_inicio'];
            $entrada['body'] .="<br><br><b>Comentarios:<br>$notas</b>";
            
            $entrada['destinatarios'] = array($row['responsable']);
            $entrada['destinatariosCC'] = array(34);
 
            $entrada['tipo'] = 'Intervenciones';
            $mail=new Sgit_Mail();
			$mail->sendMsg($entrada);
            
            return array('status'=>'ok');
        }else{
           return array('status'=>'ko');
        }
        
    }    
    
    
    
    
    
    
    
    
    public function getIntervenciones($fecha,$fecha_fin,$id_zona)
	{



            $anio=$fecha->toString('yyyy');
            $mes=$fecha->toString('M');


			$select = $this->getAdapter()->select();            
			$select->from( array( 'intervenciones' ),array('*','dia'=>new Zend_Db_Expr('DAY(fecha)')));
			
            if(is_numeric($id_zona))
                $select->where( 'id_zona = ?', $id_zona );
                
 
            $validator = new Zend_Validate_Date('yyyy-MM-DD');
            if($validator->isValid($fecha_fin))
            {

                $select->where( 'fecha <= ?', $fecha_fin);
                $select->where( 'fecha >= ?', new Zend_Db_Expr('NOW()'));
            }
            

            
            $select->where( 'MONTH(fecha) = ?', $mes);
            $select->where( 'YEAR(fecha) = ?', $anio);
            $select->where( 'objeto_cambio = ?', 1 );
            $select->order(array('fecha','hora_inicio') );
            

            return $this->getAdapter()->fetchAll( $select );
			

	} 
    

    
    
    
    
} 




